<?php
/**
 * Created by PhpStorm.
 * User: yifeng
 * Date: 2018/10/10
 * Time: 0:50
 */

namespace addons\message;

use think\Db;
use think\Addons;

class Message extends Addons
{
    // 该插件的基础信息
    public $info = [
        'name' => 'message',	// 插件标识
        'title' => '在线留言',	// 插件名称
        'description' => '在线留言插件',	// 插件简介
        'status' => 0,	// 状态
        'author' => 'yifeng',
        'version' => '1.0',
        'menu'=>[
            'name'=>'查看留言',
            'url'=>'',
            'type'=>0 //0:个人博客管理后台菜单，1：博客系统后台管理菜单
        ],
    ];
    public function _initialize()
    {
        $this->info['menu']['url']=addon_url('Message://Index/lst');
    }
    /**
     * 插件安装方法
     * @return bool
     */
    public function install()
    {
        $content=$this->info;
        //创建留言数据表
        $sql_content=file_get_contents(ADDON_PATH .'message/install.sql');
        $arr_sql=array_filter(explode(";",$sql_content));
        $sql_status=true;
        foreach ($arr_sql as $v){
           $a=true;
           $a=Db::execute($v);
           if($a!==false){
               $a=true;
           }
           $sql_status=$a  && $sql_status;
        }
        if($sql_status===false){
            return false;
        }

        $result=create_config($content);
        if($result){
            return true;
        }else{
            return false;
        }

    }

    /**
     * 插件卸载方法
     * @return bool
     */
    public function uninstall()
    {
        //删除数据表
        $sql="DROP TABLE IF EXISTS `td_message`";
        $sql_status=Db::execute($sql);
        if($sql_status===false){
            return false;
        }
        $name=$this->getName();
        $file=ADDON_PATH.$name.DS.config("addons.fileflag");
        if(!is_file($file)){
            return false;
        }

        $result=@unlink($file);
        if(!$result){
            return false;
        }

        return true;
    }
    /**
     * 实现在线留言的钩子方法
     * @return mixed
     */
    public function messagehook($param)
    {
        $this->assign('cid',$param['cid']);
        return $this->fetch('message');
    }
}